//package com.molyfun.parents.activity.course;
//
//import android.content.Context;
//import android.content.Intent;
//import android.os.Bundle;
//import android.support.v7.widget.GridLayoutManager;
//import android.support.v7.widget.RecyclerView;
//import android.view.Menu;
//import android.view.MenuItem;
//import android.view.View;
//import android.widget.ImageView;
//import android.widget.LinearLayout;
//
//import com.molyfun.parents.MFPApplication;
//import com.molyfun.parents.R;
//import com.molyfun.parents.activity.common.BaseActivity;
//import com.molyfun.parents.activity.course.adapter.CourseDetailAdapter;
//import com.molyfun.parents.activity.course.bean.CourseMediaBean;
//import com.molyfun.parents.activity.course.view.courseitem.CourseCellFactory;
//import com.molyfun.parents.dao.entity.CourseDownloadTask;
//import com.molyfun.parents.dao.gen.CourseDownloadTaskDao;
//import com.molyfun.parents.dao.gen.DaoMaster;
//import com.molyfun.parents.dao.gen.DaoSession;
//import com.molyfun.parents.rest.bean.CourseDetailResponse;
//import com.molyfun.parents.utils.Const;
//import com.molyfun.parents.utils.GsonUtil;
//import com.molyfun.parents.view.TwoTabBar;
//
//import java.util.ArrayList;
//import java.util.List;
//
//import butterknife.ButterKnife;
//import butterknife.InjectView;
//import retrofit2.Call;
//import retrofit2.Callback;
//import retrofit2.Response;
//
///**
// * Created by william(liuchao.hit@gmail.com).
// * Date:11/4/16.
// */
//public class CourseRecordActivity extends BaseActivity implements View.OnClickListener, TwoTabBar.TwoBarClickListener {
//
//    @InjectView(R.id.base_title_left)
//    ImageView mTitleBack;
//    @InjectView(R.id.recyclerView)
//    RecyclerView mRecyclerView;
//    @InjectView(R.id.empty_layout)
//    LinearLayout mEmptyLayout;
//    @InjectView(R.id.course_detail_top_bar)
//    TwoTabBar mCourseDetailTopBar;
//
//    GridLayoutManager mGridLayoutManager;
//    CourseDetailAdapter courseDetailAdapter;
//
//    private CourseDownloadTaskDao courseDownloadTaskDao;
//
//    /**
//     * 本地模式不能摒弃，不可以根据网络有无判断。
//     * 可能用户网络不好
//     */
//    private boolean mUseNative = false;
//
//    private String mCourseId;
//    private String mCourseDownloadId;
//
//    private List<CourseMediaBean> mDataList;
//    private List<CourseMediaBean> mRecordList;
//
//    public static void startActivity(Context context, String courseId) {
//        Intent intent = new Intent();
//        intent.putExtra(Const.COURSE_ID, courseId);
//        intent.setClass(context, CourseRecordActivity.class);
//        context.startActivity(intent);
//    }
//
//    //下载过的课程进入
//    public static void startActivityNative(Context context, String courseDownloadId) {
//        Intent intent = new Intent();
//        intent.putExtra(Const.COURSE_DOWNLOAD_ID, courseDownloadId);
//        intent.putExtra(Const.FLAG_NATIVE, true);
//        intent.setClass(context, CourseRecordActivity.class);
//        context.startActivity(intent);
//    }
//
//    @Override
//    protected void onCreate(Bundle savedInstanceState) {
//        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_course_detail);
//        ButterKnife.inject(this);
//
//        mTitleBack.setOnClickListener(this);
//
//        getSupportActionBar().setTitle("");
//
//        mRecyclerView.setHasFixedSize(true);
//        mGridLayoutManager = new GridLayoutManager(this, 2);
//        mRecyclerView.setLayoutManager(mGridLayoutManager);
//
//        mTitleBack.setOnClickListener(this);
//
//        courseDetailAdapter = new CourseDetailAdapter(this);
//        mRecyclerView.setAdapter(courseDetailAdapter);
//        mUseNative = getIntent().getBooleanExtra(Const.FLAG_NATIVE, false);
//        if (mUseNative) {
//            DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(MFPApplication.getInstance(), Const.DB_NAME, null);
//            DaoMaster daoMaster = new DaoMaster(devOpenHelper.getWritableDatabase());
//            DaoSession daoSession = daoMaster.newSession();
//            courseDownloadTaskDao = daoSession.getCourseDownloadTaskDao();
//            mCourseDownloadId = getIntent().getStringExtra(Const.COURSE_DOWNLOAD_ID);
//        }
//        mCourseId = getIntent().getStringExtra(Const.COURSE_ID);
//        getCourseDetail();
//        mCourseDetailTopBar.initData("课程素材", "课程记录");
//        mCourseDetailTopBar.setVisibility(View.GONE);
//        mCourseDetailTopBar.setTwoBarClickListener(this);
//    }
//
//    @Override
//    public boolean onCreateOptionsMenu(Menu menu) {
//        getMenuInflater().inflate(R.menu.course_toolbar_menu, menu);
//        return super.onCreateOptionsMenu(menu);
//    }
//
//    @Override
//    public boolean onOptionsItemSelected(MenuItem item) {
//        getFilterCourse(item);
//        return false;
//    }
//
//    private void getFilterCourse(MenuItem item) {
//        List<CourseMediaBean> filterCourses = new ArrayList<>();
//        List<CourseMediaBean> coursesSources = new ArrayList<>();
//
//      /*  if (mCourseDetailTopBar.getCurrentChooseTab() == TwoTabBar.TwoTabChooseTab.BAR_ONE) {
//            coursesSources = mDataList;
//        } else {
//            coursesSources = mRecordList;
//        }*/
//        coursesSources = mRecordList;
//        if (coursesSources == null || coursesSources.size() == 0) {
//            return;
//        }
//        switch (item.getItemId()) {
//            case R.id.action_video:
//                for (CourseMediaBean courseMediaBean : coursesSources) {
//                    if (courseMediaBean.getType() == CourseCellFactory.CourseType.COURSE_VIDEO) {
//                        filterCourses.add(courseMediaBean);
//                    }
//                }
//                break;
//            case R.id.action_music:
//                for (CourseMediaBean courseMediaBean : coursesSources) {
//                    if (courseMediaBean.getType() == CourseCellFactory.CourseType.COURSE_MUSIC) {
//                        filterCourses.add(courseMediaBean);
//                    }
//                }
//                break;
//            case R.id.action_game:
//                for (CourseMediaBean courseMediaBean : coursesSources) {
//                    if (courseMediaBean.getType() == CourseCellFactory.CourseType.COURSE_GAME) {
//                        filterCourses.add(courseMediaBean);
//                    }
//                }
//                break;
//            case R.id.action_pic:
//                for (CourseMediaBean courseMediaBean : coursesSources) {
//                    if (courseMediaBean.getType() == CourseCellFactory.CourseType.COURSE_IMAGE) {
//                        filterCourses.add(courseMediaBean);
//                    }
//                }
//                break;
//            case R.id.action_all:
//                filterCourses = coursesSources;
//                break;
//        }
//        courseDetailAdapter.refreshData(filterCourses);
//        if (filterCourses.size() > 0) {
//            mEmptyLayout.setVisibility(View.GONE);
//        } else {
//            mEmptyLayout.setVisibility(View.VISIBLE);
//        }
//    }
//
//    @Override
//    public void onClick(View v) {
//        switch (v.getId()) {
//            case R.id.base_title_left:
//                finish();
//                break;
//        }
//    }
//
//    @Override
//    public void onTwoBarClick(int chooseTab) {
//        switch (chooseTab) {
//            case TwoTabBar.TwoTabChooseTab.BAR_ONE:
//                courseDetailAdapter.refreshData(mDataList);
//                if (mDataList != null && mDataList.size() > 0) {
//                    mEmptyLayout.setVisibility(View.GONE);
//                } else {
//                    mEmptyLayout.setVisibility(View.VISIBLE);
//                }
//
//                break;
//            case TwoTabBar.TwoTabChooseTab.BAR_TWO:
//                courseDetailAdapter.refreshData(mRecordList);
//                if (mRecordList != null && mRecordList.size() > 0) {
//                    mEmptyLayout.setVisibility(View.GONE);
//                } else {
//                    mEmptyLayout.setVisibility(View.VISIBLE);
//                }
//
//                break;
//        }
//    }
//
//    private void getCourseDetail() {
//
//        if (!mUseNative) {
//            showProgressDialog();
//            Call<CourseDetailResponse> call = MFPApplication.getInstance().getRestClient().getCourseDetail(mCourseId, Const.FALSE);
//            call.enqueue(new Callback<CourseDetailResponse>() {
//                @Override
//                public void onResponse(Call<CourseDetailResponse> call, Response<CourseDetailResponse> response) {
//                    dismissProgressDialog();
//                    if (response.body() != null && response.body().getData() != null) {
//                        mRecordList = response.body().getData().getPlanmediaobjectlist();
//                        courseDetailAdapter.refreshData(mRecordList);
//                        if (mRecordList != null && mRecordList.size() > 0) {
//                            mEmptyLayout.setVisibility(View.GONE);
//                        } else {
//                            mEmptyLayout.setVisibility(View.VISIBLE);
//                        }
//                    } else {
//                        mEmptyLayout.setVisibility(View.VISIBLE);
//                    }
//                }
//
//                @Override
//                public void onFailure(Call<CourseDetailResponse> call, Throwable t) {
//                    dismissProgressDialog();
//                }
//            });
//        } else {
//            //读取本地缓存
//            List<CourseDownloadTask> courseDownloadTasks = courseDownloadTaskDao.queryBuilder()
//                    .where(CourseDownloadTaskDao.Properties.DownloadKeyId.eq(mCourseDownloadId))
//                    .build().list();
//            if (courseDownloadTasks != null && courseDownloadTasks.size() > 0) {
//                CourseDetailResponse.CourseDetailBean courseDetailBean = GsonUtil.fromJson(courseDownloadTasks.get(0).getJsonStr(), CourseDetailResponse.CourseDetailBean.class);
//                if (courseDetailBean != null) {
//                    if (courseDetailBean.getMediaobjectlist() != null) {
//                        for (CourseMediaBean courseMediaBean : courseDetailBean.getMediaobjectlist()) {
//                            courseMediaBean.setIsOffLineMode(true);
//                        }
//                    }
//                    if (courseDetailBean.getPlanmediaobjectlist() != null) {
//                        for (CourseMediaBean courseMediaBean : courseDetailBean.getPlanmediaobjectlist()) {
//                            courseMediaBean.setIsOffLineMode(true);
//                        }
//                    }
//
//
//                    mDataList = courseDetailBean.getMediaobjectlist();
//                    mRecordList = courseDetailBean.getPlanmediaobjectlist();
//                    courseDetailAdapter.refreshData(courseDetailBean.getMediaobjectlist());
//                    if (mDataList == null || mDataList.size() == 0) {
//                        mEmptyLayout.setVisibility(View.VISIBLE);
//                    }
//                }
//
//            }
//        }
//    }
//
//
//}
